// components/RealTimeClock/RealTimeClock.js
Component({
  /**
   * 组件的属性列表（支持自定义样式）
   */
  properties: {
    // bgColor: { // 背景色
    //   type: String,
    //   value: "#f8f8f8"
    // },
    textColor: { // 文字色
      type: String,
      value: "#fff"
    },
    fontSize: { // 字体大小（rpx）
      type: String,
      value: "30rpx"
    }
  },

  /**
   * 组件的初始数据
   */
  data: {
    dateStr: "", // 日期字符串（XXXX年XX月XX日 星期X）
    timeStr: ""  // 时间字符串（XX:XX:XX）
  },

  /**
   * 组件生命周期：挂载时启动定时器
   */
  attached() {
    // 初始化显示当前时间
    this.updateTime();
    // 每秒更新一次
    this.interval = setInterval(() => {
      this.updateTime();
    }, 1000);
  },

  /**
   * 组件生命周期：销毁时清除定时器
   */
  detached() {
    clearInterval(this.interval);
  },

  /**
   * 组件的方法列表
   */
  methods: {
    // 更新时间并格式化
    updateTime() {
      const now = new Date();
      
      // 格式化日期
      const year = now.getFullYear();
      const month = this.padZero(now.getMonth() + 1); // 月份从0开始
      const day = this.padZero(now.getDate());
      const week = ["日", "一", "二", "三", "四", "五", "六"][now.getDay()];
      const dateStr = `${year}年${month}月${day}日 星期${week}`;
      
      // 格式化时间（精确到秒）
      const hours = this.padZero(now.getHours());
      const minutes = this.padZero(now.getMinutes());
      const seconds = this.padZero(now.getSeconds());
      const timeStr = `${hours}:${minutes}:${seconds}`;
      
      // 更新数据
      this.setData({
        dateStr,
        timeStr
      });
    },

    // 数字补零（确保两位数）
    padZero(n) {
      return n < 10 ? `0${n}` : n;
    }
  }
})
